package com.platform.enums;

import com.platform.comm.enums.IDictEntry;
import com.platform.comm.enums.IEnumItem;

/**
 * 目录更新周期
 *
 * @author wxw
 * @date 2021/07/28
 */
public enum DirUpdatePeriod implements IDictEntry, IEnumItem {
    /**
     * 实时
     */
    IN_TIME("0_IN_TIME_M", "即时"),

    /**
     * 每天
     */
    IN_DAY("1_IN_DAY_M", "每日"),

    /**
     * 每周
     */
    IN_WEEK("2_IN_WEEK_M", "每周"),

    /**
     * 每月
     */
    IN_MONTH("3_IN_MONTH_M", "每月"),

    /**
     * 每季
     */
    IN_QUARTER("4_IN_QUARTER_Q", "每季"),

    /**
     * 每年
     */
    IN_YEAR("5_IN_YEAR_Y", "每年"),

    /**
     * 每半年
     */
    HALF_YEAR("6_HALF_YEAR_Y", "每半年"),

    /**
     * 7个工作日内
     */
    SEVEN_DAY("7_SEVEN_DAY_M", "7个工作日内");

    public final String code;
    public final String title;

    DirUpdatePeriod(String code, String title) {
        this.code = code;
        this.title = title;
    }

    public static DirUpdatePeriod parse(String code) {
        for (DirUpdatePeriod item : values()) {
            if (item.is(code)) {
                return item;
            }
        }
        return null;
    }

    public static DirUpdatePeriod parseText(String text) {
        for (DirUpdatePeriod item : values()) {
            if (item.isText(text)) {
                return item;
            }
        }
        return null;
    }

    @Override
    public boolean is(String code) {
        return this.code.equals(code);
    }

    private boolean isText(String text) {
        return this.title.equals(text);
    }

    @Override
    public String getKey() {
        return code;
    }

    @Override
    public String getValue() {
        return title;
    }

    @Override
    public Object getData() {
        return this;
    }

}
